package com.tzy.note.base.jvm;

/**
 * 类加载器验证
 * java的前身就是C++，C++这门语言C--就是java
 * java=(c++)--：c++减掉一些功能就变成java
 *
 * 为什么Object类加载器是输出是null，而不是根类加载器(Bootstrap)
 * 因为根类加载器(Bootstrap)是C++写的，看不到源码，也不能实例化，所以输出null
 */
public class ClassLoadDemo {
    public static void main(String[] args) {
        Object obj = new Object();
        ClassLoadDemo demo = new ClassLoadDemo();
        System.out.println(obj.getClass().getClassLoader()); //null ? 为什么Object类加载器是null，而不是根类加载器(Bootstrap)
        System.out.println("==============================");
        System.out.println(demo.getClass().getClassLoader().getParent().getParent());//null
        System.out.println(demo.getClass().getClassLoader().getParent());//sun.misc.Launcher$ExtClassLoader@6e0be858
        System.out.println(demo.getClass().getClassLoader());//sun.misc.Launcher$AppClassLoader@18b4aac2
    }
}

